﻿using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Windows;


using RedPanda.MusicPlayer.DataModel;
using RedPanda.MusicPlayer.ViewModel;
using RedPanda.MusicPlayer.Utils;
using RedPanda.MusicPlayer;

using RedPanda.ViewModel;

namespace RedPanda
{
    /// <summary>
    /// App.xaml 的交互逻辑
    /// </summary>
    public partial class App : Application
    {
        #region Filed;
        //该文件夹用来保存该程序相关的数据，包括程序的配置文件、
        //专辑封面、歌词、歌手信息等;
        internal const string ApplicationFolderName = "RedPanda";
        
        //全局变量;
        public static MainViewModel mainViewModel=new MainViewModel();

        #endregion 


        protected override void OnStartup(StartupEventArgs e)
        {
            //加载数据;
            /*
             * 在此处要判断获得当前系统的配置，包括软件各个属性的
             * 设置值，并判断是否为初次使用，初次使用时则应该进行配置，
             * 包括导入媒体库，设置P2P的各个属性
             * */

            //加载播放列表
            LoadPlaylist();

            base.OnStartup(e);

        }

        #region methods

        /// <summary>
        /// 加载上次正常退出时的播放列表;
        /// </summary>
        private void LoadPlaylist()
        {
            //导入播放列表;
            //此处直接给定文件名;
            Playlist pl = PlaylistUtil.LoadSingleList("test");

            //导入失败时设置当前播放列表为空;
            if (pl == null)
            {
                pl = new Playlist();
            }

            mainViewModel.CurrentPlaylist = new PlaylistViewModel(pl);

            //设置当前的播放曲目;
            if (mainViewModel.CurrentPlaylist.CurrentTrack!=null)
            {
                mainViewModel.CurrentTrack =
                    new AudioFileViewModel(mainViewModel.CurrentPlaylist.CurrentTrack);
            }
            else
            {
                mainViewModel.CurrentTrack = null;
            }
        }

        #endregion 

    }
}
